package com.boesch.electroOffice.business.businessObject;

import java.util.List;

import com.boesch.electroOffice.business.common.BusinessException;
import com.boesch.electroOffice.dataaccess.common.IllegalDataAccessException;
import com.boesch.electroOffice.model.messerli.Invoice;

/**
 * This interface allocates all methods for InvoiceBusinessObject.
 * The methods are only called by the application layer.
 * If there is an error on executing the method, a illegalBusinessObjectException will be thrown.
 * 
 * @author Ralph Koster
 *
 */
public interface InvoiceBusinessObject {

	/**
	 * Reads all invoices from dataaccess.
	 * 
	 * @return List<InvoiceMesserli> invoices
	 * @throws IllegalDataAccessException
	 */
	public List<Invoice> readAllInvoicesFromDataaccess() throws IllegalDataAccessException, BusinessException;

	public Invoice readInvoiceByInvoiceNumber(String invoiceNumber) throws IllegalDataAccessException, BusinessException;
}
